package com.yqy.spring.T1.bean;

public class User {
    public User() {
        /**
        默认情况下Spring会通过反射机制，调用类的无参数构造方法来实例化对象。
         实现原理如下
         dom4j解析beans.xml文件，从中获取class的全限定类名
         通过反射机制调用无参数构造方法创建对象
         Class clazz = Class.forName("com.yqy.spring.bean.User");
         Object obj = clazz.newInstance();
         */
        System.out.println("User的无参构造方法已执行");
        /**由测试结果知：
         * 创建对象时确实调用了无参数构造方法
         */
    }

    /**
     * 我们如果将无参构造方法注释，提供一个有参构造方法
     * 通过测试运行报错得知
     * spring是通过调用类的无参数构造方法来创建对象的
     * spring创建对象，必须保证无参数构造方法是存在的。
     */
    public User(String name){
        System.out.println("User的有参构造方法已执行");
    }
}
